package web;

import java.io.Serializable;
import java.util.List;

import javax.annotation.PostConstruct;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import service.CategoriaTransacaoService;
import service.ManutencaoService;
import service.OrcamentoService;
import entity.CategoriaTransacao;
import entity.Orcamento;

@Controller
@Scope("view")
public class ManterOrcamentoMB extends ManutencaoCRUDBean<Orcamento> implements
	Serializable {

    private static final long serialVersionUID = 7863504781978243773L;

    @Autowired
    private OrcamentoService orcamentoService;

    @Autowired
    private CategoriaTransacaoService categoriaTransacaoService;

    private Orcamento orcamento;

    private List<Orcamento> listaOrcamentos;

    private List<CategoriaTransacao> listaCategorias;

    @Override
    protected void inicializar() {
	super.inicializar();
	carregarListaOrcamentos();
    }

    public void carregarListaOrcamentos() {
	listaOrcamentos = orcamentoService.listarOrcamentosDoPeriodoAtual();
    }

    @Override
    protected void prepararAdicionar() {
	orcamento = orcamentoService.criarOrcamento();
	listaCategorias = categoriaTransacaoService.listarAtivos();
    }

    @Override
    public ManutencaoService<Orcamento> getService() {
	return orcamentoService;
    }

    @Override
    public Orcamento getEntidade() {
	return orcamento;
    }

    @Override
    public void setEntidade(Orcamento entidade) {
	this.orcamento = entidade;
    }

    public List<Orcamento> getListaOrcamentos() {
	return listaOrcamentos;
    }

    public List<CategoriaTransacao> getListaCategorias() {
	return listaCategorias;
    }

}
